using System;
using System.Data.SqlTypes;

namespace EntityObjectLayer
{
    [Serializable]
    public class BETeacher
    {
        #region Class Member Declarations

        private SqlBoolean m_bGender;
        private DateTime m_daBirth;
        private DateTime m_daEnterDate;
        private DateTime m_daReleaseDate;
        private SqlString m_sAddress;
        private SqlString m_sEmail;

        private SqlString m_sFullName,
                          m_sID;

        private SqlString m_sMajorSubject;

        private SqlString m_sPhone;

        private SqlString m_sQualification,
                          m_sStatus;

        #endregion

        #region Class Property Declarations

        public SqlString sID
        {
            get { return m_sID; }
            set
            {
                SqlString sIDTmp = value;
                if (sIDTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sID", "sID can't be NULL");
                }
                m_sID = value;
            }
        }


        public SqlString sFullName
        {
            get { return m_sFullName; }
            set
            {
                SqlString sFullNameTmp = value;
                if (sFullNameTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sFullName", "sFullName can't be NULL");
                }
                m_sFullName = value;
            }
        }


        public DateTime daBirth
        {
            get { return m_daBirth; }
            set
            {
                
                m_daBirth = value;
            }
        }


        public SqlBoolean bGender
        {
            get { return m_bGender; }
            set
            {
                SqlBoolean bGenderTmp = value;
                if (bGenderTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("bGender", "bGender can't be NULL");
                }
                m_bGender = value;
            }
        }


        public SqlString sAddress
        {
            get { return m_sAddress; }
            set
            {
                SqlString sAddressTmp = value;
                if (sAddressTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sAddress", "sAddress can't be NULL");
                }
                m_sAddress = value;
            }
        }


        public SqlString sEmail
        {
            get { return m_sEmail; }
            set
            {
                SqlString sEmailTmp = value;
                if (sEmailTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sEmail", "sEmail can't be NULL");
                }
                m_sEmail = value;
            }
        }


        public SqlString sPhone
        {
            get { return m_sPhone; }
            set
            {
                SqlString sPhoneTmp = value;
                if (sPhoneTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sPhone", "sPhone can't be NULL");
                }
                m_sPhone = value;
            }
        }


        public SqlString sMajorSubject
        {
            get { return m_sMajorSubject; }
            set
            {
                SqlString sMajorSubjectTmp = value;
                if (sMajorSubjectTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sMajorSubject", "sMajorSubject can't be NULL");
                }
                m_sMajorSubject = value;
            }
        }


        public SqlString sQualification
        {
            get { return m_sQualification; }
            set
            {
                SqlString sQualificationTmp = value;
                if (sQualificationTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sQualification", "sQualification can't be NULL");
                }
                m_sQualification = value;
            }
        }


        public DateTime daEnterDate
        {
            get { return m_daEnterDate; }
            set
            {
                
                m_daEnterDate = value;
            }
        }


        public DateTime daReleaseDate
        {
            get { return m_daReleaseDate; }
            set
            {
                
                m_daReleaseDate = value;
            }
        }


        public SqlString sStatus
        {
            get { return m_sStatus; }
            set
            {
                SqlString sStatusTmp = value;
                if (sStatusTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sStatus", "sStatus can't be NULL");
                }
                m_sStatus = value;
            }
        }

        #endregion
    }
}